jjzjj

google test

全部标签

c++ Google测试运行两次

我开始使用GoogleTest对我的代码运行单元测试。我在Ubuntu12.04上使用EclipseKepler。我在第一次测试中使用了以下类:AllTests.cpp#include"gtest/gtest.h"#include"SerialManagerTest.cpp"intmain(intargc,char**argv){::testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}SerialManagerTest.cpp#include"gtest/gtest.h"#include"SerialManager.h"

c++ - 我怎么能期望谷歌测试多次失败?

我怎么能预期谷歌测试会多次失败?我在测试断言发生在我的被测代码中时使用它。因为这些断言不是致命的,所以可能会发生多次。下面的测试用例重现了这一点:voidfailTwice(){EXPECT_TRUE(false)这会产生以下输出:gtest/src/gtest.cc:657:FailureExpected:1non-fatalfailureActual:2failuresFailureTest.h:20:Non-fatalfailure:Valueof:falseActual:falseExpected:truefailfirsttimeFailureTest.h:20:Non-fa

c++ - 如果 Google 测试中的测试失败,如何打印一些东西?

我对很多ASSERT()进行了一些复杂的测试和EXPECT().该测试检查有关字符串的一些属性,例如命令行。我想打印这个字符串,以防测试以任何可能的方式失败。我不想:输入每ASSERT().多次查看字符串,以防多次失败EXPECT().我想做这样的事情:TEST(MyTest,Test1){...if(HAS_FAILED()){std::cout 最佳答案 您可以使用HasFatalFailure()。TEST(FooTest,Bar){Subroutine();//AbortsifSubroutine()hadafatalfai

c++ - 如何使用 gmock 从类中模拟模板方法?

如何使用gmock模拟一个类的模板方法(不是模板类)?像这样的类示例,我想模拟这个类和这个模板方法..classA{public:templateintgetType(intval);};我知道如何用非虚拟方法模拟一个类,或者模拟一个模板类,但我不知道如何用一个模板方法模拟一个非模板类.. 最佳答案 第一个更好的解决方案是使用此函数A::getType的实现-也许它不必被模拟?例如:如果它只是返回一些在构造函数中设置的值-那么只需按照测试用例所需的方式构造A:classA{public:A(inta):a(a){}templatei

c++ - 在 gTest 中模拟 FreeRTOS 函数

对于一个项目,我在嵌入式系统上用C++实现了一个组件,该组件通过FreeRTOS队列获取传感器数据并将它们处理成一个FreeRTOS任务。由于硬件尚未到达和质量原因(TDD),我想模拟freeRTOS功能并使用它们来模拟我的组件行为。先谢谢你了。 最佳答案 所以我通过结合来自网站的不同答案设法解决了我的问题:HowtousegoogletestforC++torunthroughcombinationsofdata&CangmockbeusedforstubbingCfunctions?.我的答案有点大,但是如果你想使用它,你可以简

c++ - 测试 C++ 代码 : Using test libraries

我学习C++有一段时间了,但这是我第一次接触C++项目(宠物配置解析器库)。我正在使用GoogleC++TestingFramework来测试这个。但我不知道我这样做是否正确。目前,我已经剥离了这个Google测试库的一些部分并将其放入我的项目Test/googletest目录中。它工作正常,但我想知道我是否应该这样做。我在我的项目中包含了测试框架的源代码,它将与我的代码一起发布。这让我感到不舒服。我浏览了someC++projectsonGitHub,试图看看其他人如何处理这个问题。有些有自定义框架,大多数根本不测试代码就解决了整个问题。我想知道我是否做对了,或者我怎样才能采用一种测

c++ - 使用 C++11 std::condition_variable 的 Gtest 意味着 valgrind 错误

如果我以这种方式使用google测试框架编写测试:TEST_F(TestFName,TestName){std::condition_variablecv;}它会生成一个valgrind错误。我使用--leak-check=full--track-origins=yes选项运行它。Conditionaljumpormovedependsonuninitialisedvalue(s)==17215==at0x4E3DA82:pthread_cond_destroy@@GLIBC_2.3.2(pthread_cond_destroy.c:35)...Uninitialisedvaluewa

主要gtest之前的c++段错误

我在main之前得到一个堆栈跟踪:#includeusingnamespacestd;intmain(intargc,char**argv){::testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}堆栈跟踪:程序收到信号SIGSEGV,段错误。0x0000000000000000在??()#00x0000000000000000in??()#10x00000000004e0b51instd::locale::_S_initialize()()#20x00000000004e0b93instd::locale::local

c++ - 如何对 BSD 套接字进行单元测试

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion我正在使用BSD套接字在Ubuntu中编写基于服务器/客户端的C++应用程序。我使用GoogleC++测试框架作为我的单元测试框架。我想知道有没有一种方法可以在我的单元测试中创建服务器和客户端,这样我就可以测试服务器的监听/接受,以及双方的发送/接收。问题是,如果我要测试服务器的套接字接受(在监听端口之后),我怎样才能让一些客户端在这个测试中连接到它?我可以使用多线程让客户端连接到在同一TEST()(或T

c++ - 如何在 C++ 中使用 GMock 模拟方法(非虚拟)以返回特定值?

我的问题是我想模拟一个StaticNon-Virtual方法来返回true,最终返回false。我有静态方法例如:classSomeClass{public:staticboolSomeClass::DoAction(){//dosomeActions};};我想在模拟期间始终返回true,但默认情况下返回false,反正有模拟我尝试了以下方法来检查oncall值并发现它导致false。classMockSomeClass:publicSomeClass{public:MockSomeClass(){ON_CALL(this,DoAction).WillByDefault(testin